package com.hugang.designmode.singleton.lazy;

/**
 * 懒汉式：需要使用该对象的时候再创建
 * 1）、私有化构造器
 * 2）、向外提供静态方法获取对象
 * 3）、创建对象时判断此对象是否为空，不为空才创建
 *
 * @author hg
 * @date 2020/8/24 09:46
 */
public class SingletonLazy02 {

    //加入volatile禁止指令重排
    private volatile static SingletonLazy02 instance;

    private SingletonLazy02(){

    }

    public static SingletonLazy02 getInstance(){
        if (instance == null){
            synchronized (SingletonLazy02.class){
                if (instance == null){
                    instance = new SingletonLazy02();
                }
            }
        }
        return instance;
    }
}
